<script>
/* 
对象
    有属性 有方法 可以改变 
    都有的方法 toString()  valueOf()
对象的种类
    1、内部对象 17种
        a、错误对象 6种   
        b、常用对象 8种 布尔、数字、字符串、数组、日期、函数、对象、正则
        c、内置对象 3种 Math  Global Json
    2、数组对象
        window   document
    3、自定义对象

    Object函数
        任何转换成对象    

    值的比较
    引用的比较
*/

// 转换成对象

console.log(Object(123));
console.log(Object(true));
console.log(Object(null));//{}
console.log(Object(undefined));//{}
console.log(Object('abc'));
// 对象转成原始类型
/* 
1.所以对象转成bool变为true
*/
console.log(Boolean(new Boolean(false))); //true
/* 
2.对象转换成字符串和数字
toString()   
    数组：1,2,3,4
    函数：函数的源代码
    日期：Sat Aug 28 2021 23:17:29 GMT+0800 (中国标准时间)
    正则：/^2/g
valueOf()  没有原始值，返回本身


先调用toString()  后调用valueOf()

*/
// 数组
const arr = [1,2,3,4];
console.log(arr.toString());
console.log(arr.valueOf());
// 函数
function func(){
    console.log(123);
}
console.log(func.toString());
console.log(func.valueOf());
// 日期
let date= new Date();
console.log(date.toString());
console.log(date.valueOf());
// 正则
let reg = /^2/g;
console.log(reg.toString());
console.log(reg.valueOf());

// 对象
const obj = {name:'小明'};
console.log(obj.toString());
console.log(obj.valueOf());

</script>